package com.Oct_Seven;


/**
 * 2305. 公平分发饼干
 *给你一个整数数组 cookies ，其中 cookies[i] 表示在第 i 个零食包中的饼干数量。另给你一个整数 k 表示等待分发零食包的孩子数量，所有 零食包都需要分发。在同一个零食包中的所有饼干都必须分发给同一个孩子，不能分开。
 *
 * 分发的 不公平程度 定义为单个孩子在分发过程中能够获得饼干的最大总数。
 *
 * 返回所有分发的最小不公平程度。
 *
 *  
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/fair-distribution-of-cookies
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * 2022/10/07 18:27
 */

public class Solution2305 {

    int ans=Integer.MAX_VALUE;
    
    public int distributeCookies(int[] cookies, int k) {
        dfs(cookies,new int[k],0);
        return ans;
    }


    public void dfs(int[] cookies,int[] sum,int index){
        if (index>=cookies.length)
        {
            int max=Integer.MIN_VALUE;
            for (int a :
                    sum) {
                max = Math.max(max, a);
            }
            ans=max;
            return;
        }
        for (int i=0;i<sum.length;i++)
        {
            sum[i]+=cookies[index];
            if (sum[i]<ans)
            {
                dfs(cookies,sum,index+1);
            }
            sum[i]-=cookies[index];
        }
    }

    public static void main(String[] args) {
        Solution2305 solution2305=new Solution2305();
        System.out.println(solution2305.distributeCookies(new int[]{8,15,10,20,8},2));
    }

}
